package com.lagou.firstStageFourthModel;

import java.io.File;

/**
 * 实现将指定目录中的所有内容删除，包含子目录中的内容都要全部删除。
 */
public class Second {

    /**
     * 路径
     */
    private static final String FILE_PATH  = "/Users/songhao/del_test";

    /**
     * 递归思想取出目录中文件及子目录的名称并删除
     * @param file
     */
    public static void delete(File file) {
        // 获取目录下的文件和子目录
        File[] files = file.listFiles();

        // 判断目录中是否有可删除的文件和目录
        if (0 == files.length) {
            System.out.println(file.getAbsolutePath() + "中无可删除文件和目录");
        } else {
            for (File f : files) {
                // 如果是目录，递归调用删除方法
                if (f.isDirectory()) {
                    delete(f);
                    System.out.println("正在删除目录：" + f.getAbsolutePath());
                }

                // 如果是文件，直接删除
                if (f.isFile()) {
                    System.out.println("正在删除文件：" + f.getAbsolutePath());
                }
                f.delete();
                System.out.println("删除成功!");

                System.out.println("------------------------");
            }
        }
    }

    public static void main(String[] args) {
        // 创建File类型对象关联目录
        File file = new File(FILE_PATH);
        // 调用方法删除指定目录中的所有内容
        delete(file);
        System.out.println("全部文件删除完成!");
    }
}
